package com.sdhs.costcontrol.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdhs.businessfile.domain.BusinessFile;
import com.sdhs.common.annotation.Excel;
import com.sdhs.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 成本控制--采购确认对象 gc_control_confirmation_purchase
 *
 * @author andong
 * @date 2025-03-17
 */
@Data
public class GcControlConfirmationPurchase extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 采购确认主键
     */
    private Long id;

    /**
     * 关联采购计划id
     */
    @Excel(name = "关联采购计划id")
    private Long planId;

    /**
     * 采购计划名称
     */
    @Excel(name = "采购计划名称")
    private String purchasePlanName;

    /**
     * 提交人姓名
     */
    @Excel(name = "提交人姓名")
    private String submitNickName;

    /**
     * 提交人用户名
     */
    @Excel(name = "提交人用户名")
    private String submitUserName;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /**
     * 审批状态
     */
    @Excel(name = "审批状态")
    private String approvalStatus;

    /**
     * 流程实例ID
     */
    @Excel(name = "流程实例ID")
    private Long instanceId;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String creater;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private String updater;

    /**
     * 用户名
     */
    @Excel(name = "用户名")
    private String userName;

    /**
     * 是否删除
     */
    @Excel(name = "是否删除")
    private String isDelete;

    /**
     * 总金额
     */
    @Excel(name = "总金额")
    private BigDecimal amountPayment;

    /**
     * 清单列表对象
     */
    private List<GcControlConfirmationPurchaseList> gcControlPlanList;

    /**
     * 附件
     */
    private List<BusinessFile> fileList;

    /**
     * 计划类型
     */
    @Excel(name = "计划类型")
    private String procurementType;
    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;
}
